﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using HMS_Hospital_Team2._6.BL;
using HMS_Hospital_Team2._6.DA;
using System.Collections;
using HMS_Hospital_Team2._6.GUI.Report;
using DevExpress.Utils;
using DevExpress.XtraReports.UI;
using DevExpress.XtraReports.Parameters;


namespace HMS_Hospital_Team2._6.GUI
{
    public partial class UcBaoCaoHoadon : UserControl
    {
        public UcBaoCaoHoadon()
        {
            InitializeComponent();
        }

      
        string sMaNV = "";
        // khai báo biến bool để đánh dấu
        bool blcheckall = false;//danh dau chon tat ca
        int idanhdau = 0;
        HoaDonBL hd = new HoaDonBL();
        // Xử lý nút radio Ngày
        private void rdNgay_Baocaohoadon_CheckedChanged(object sender, EventArgs e)
        {
            if (rdNgay_Baocaohoadon.Checked == true)
            {
                dateNgay_Baocaohoadon.Enabled = true;
                rdKhoangngay_Baocaohoadon.Checked = false;
                rdThang_Baocaohoadon.Checked = false;
                cmbThang.Enabled = false;
                cmbNam.Enabled = false;
                dateTu_Baocaohoadon.Enabled = false;
                dateDen_Baocaohoadon.Enabled = false;
                cmbThang.Text = "1";
                dateDen_Baocaohoadon.Text = "";
                dateTu_Baocaohoadon.Text = "";

                idanhdau = 1;//ngay

            }



        }
        // Xử lý nút radio Tháng
        private void rdThang_Baocaohoadon_CheckedChanged(object sender, EventArgs e)
        {

            if (rdThang_Baocaohoadon.Checked == true)
            {
                cmbNam.Enabled = true;
                for (int i = 1; i <= 12; i++)
                {
                    cmbThang.Items.Add(i);
                }
                for (int i = 1900; i <= DateTime.Now.Year; i++)
                {
                    cmbNam.Items.Add(i);
                }
                rdNgay_Baocaohoadon.Checked = false;
                rdKhoangngay_Baocaohoadon.Checked = false;
                dateNgay_Baocaohoadon.Enabled = false;
                dateTu_Baocaohoadon.Enabled = false;
                dateDen_Baocaohoadon.Enabled = false;
                cmbThang.Enabled = true;
                dateNgay_Baocaohoadon.Text = "";
                dateTu_Baocaohoadon.Text = "";
                dateDen_Baocaohoadon.Text = "";
                idanhdau = 2;//thang 

            }


        }
        // Xử lý nút radio Khoảng ngày
        private void rdKhoangngay_Baocaohoadon_CheckedChanged(object sender, EventArgs e)
        {
            if (rdKhoangngay_Baocaohoadon.Checked == true)
            {
                rdNgay_Baocaohoadon.Checked = false;
                rdThang_Baocaohoadon.Checked = false;
                dateNgay_Baocaohoadon.Enabled = false;
                dateTu_Baocaohoadon.Enabled = true;
                dateDen_Baocaohoadon.Enabled = true;
                cmbThang.Enabled = false;
                cmbNam.Enabled = false;
                cmbThang.Text = "1";
                dateNgay_Baocaohoadon.Text = "";
                idanhdau = 3;//khoang ngay

            }



        }
        // Hàm load data lên gridview
        private void UcBaoCaoHoadon_Load(object sender, EventArgs e)
        {
            // Enable groupcontrol
            grcNhanvien_Baocaohoadon.Enabled = false;
            grbThoigianbaocao_Baocaohoadon.Enabled = false;
            grcDanhsachhoadon_Baocaohoadon.Enabled = false;
            cmbThang.Text = "1";
            cmbBaocaothe_Baocaohoadon.SelectedItem = null;
        }
        /*
         * NHÂN VIÊN NHẬP LIỆU
         * */
        // Hàm load Thống kê theo NGÀY lên gridcontrol(Nhân viên nhập liệu)
        void BaocaoTheoNgaynvnl()
        {
            int iday = dateNgay_Baocaohoadon.DateTime.Day;
            int imonth = dateNgay_Baocaohoadon.DateTime.Month;
            int iyear = dateNgay_Baocaohoadon.DateTime.Year;
            grdDanhsachhoadon_Baocaohoadon.DataSource = hd.BaocaobienlaiNVnl_Ngay_BL(iday, imonth, iyear,sMaNV);

        }
        // Hàm load Thống kê theo THÁNG lên gridcontrol(Nhân viên nhập liệu)
        void BaocaotheoThangnvnl()
        {
            int month;
            month = Int32.Parse(cmbThang.Text);
            int iYear;
            iYear = Int32.Parse(cmbNam.Text);
            grdDanhsachhoadon_Baocaohoadon.DataSource = hd.BaocaobienlaiNVnl_Thang_BL(month,sMaNV,iYear);

        }
        // Hàm load Thống kê theo KHOẢNG NGÀY lên gridcontrol(Nhân viên nhập liệu)
        void BaocaoKhoangNgaynvnl()
        {
            int fromday = dateTu_Baocaohoadon.DateTime.Day;
            int frommonth = dateTu_Baocaohoadon.DateTime.Month;
            int fromyear = dateTu_Baocaohoadon.DateTime.Year;
            int today = dateDen_Baocaohoadon.DateTime.Day;
            int tomonth = dateDen_Baocaohoadon.DateTime.Month;
            int toyear = dateDen_Baocaohoadon.DateTime.Year;
            grdDanhsachhoadon_Baocaohoadon.DataSource = hd.BaocaobienlaiNVnl_KhoangNgay_BL(fromday, frommonth, fromyear, today, tomonth, toyear,sMaNV);

        }
        /*
         * NHÂN VIÊN THU TIỀN
         * */
        // Hàm load Báo cáo NVTT theo NGÀY lên gridcontrol(Nhân viên thu tiền)
        void BaocaoTheoNgaynvtt()
        {
            int iday = dateNgay_Baocaohoadon.DateTime.Day;
            int imonth = dateNgay_Baocaohoadon.DateTime.Month;
            int iyear = dateNgay_Baocaohoadon.DateTime.Year;
            grdDanhsachhoadon_Baocaohoadon.DataSource = hd.BaocaobienlaiNVtt_Ngay_BL(iday, imonth, iyear,sMaNV);

        }
        // Hàm load Báo cáo NVTT theo THÁNG lên gridcontrol(Nhân viên thu tiền)
        void BaocaotheoThangnvtt()
        {
            int month;
            month = Int32.Parse(cmbThang.Text);
            int iYear;
            iYear = Int32.Parse(cmbNam.Text);
            grdDanhsachhoadon_Baocaohoadon.DataSource = hd.BaocaobienlaiNVtt_Thang_BL(month,sMaNV,iYear);

        }
        // Hàm load Báo cáo NVTT theo KHOẢNG NGÀY lên gridcontrol(Nhân viên thu tiền)
        void BaocaoKhoangNgaynvtt()
        {
            int fromday = dateTu_Baocaohoadon.DateTime.Day;
            int frommonth = dateTu_Baocaohoadon.DateTime.Month;
            int fromyear = dateTu_Baocaohoadon.DateTime.Year;
            int today = dateDen_Baocaohoadon.DateTime.Day;
            int tomonth = dateDen_Baocaohoadon.DateTime.Month;
            int toyear = dateDen_Baocaohoadon.DateTime.Year;
            grdDanhsachhoadon_Baocaohoadon.DataSource = hd.BaocaobienlaiNVtt_KhoangNgay_BL(fromday, frommonth, fromyear, today, tomonth, toyear,sMaNV);

        }
        /*
         * TẤT CẢ
         * */
        // ----- Theo nhân viên nhập liệu -----------
        // Hàm load Báo cáo NVTT theo NGÀY lên gridcontrol(Tất cả)
        void BaocaoTheoNgaytatcanl()
        {
            int iday = dateNgay_Baocaohoadon.DateTime.Day;
            int imonth = dateNgay_Baocaohoadon.DateTime.Month;
            int iyear = dateNgay_Baocaohoadon.DateTime.Year;
            grdDanhsachhoadon_Baocaohoadon.DataSource = hd.BaocaobienlaitatcaNL_Ngay_BL(iday, imonth, iyear);

        }
        // Hàm load Báo cáo NVTT theo THÁNG lên gridcontrol(Tất cả)
        void BaocaotheoThangtatcanl()
        {
            int month;
            month = Int32.Parse(cmbThang.Text);
            grdDanhsachhoadon_Baocaohoadon.DataSource = hd.BaocaobienlaitatcaNL_Thang_BL(month);

        }
        // Hàm load Báo cáo NVTT theo KHOẢNG NGÀY lên gridcontrol(Tất cả)
        void BaocaoKhoangNgaytatcanl()
        {
            int fromday = dateTu_Baocaohoadon.DateTime.Day;
            int frommonth = dateTu_Baocaohoadon.DateTime.Month;
            int fromyear = dateTu_Baocaohoadon.DateTime.Year;
            int today = dateDen_Baocaohoadon.DateTime.Day;
            int tomonth = dateDen_Baocaohoadon.DateTime.Month;
            int toyear = dateDen_Baocaohoadon.DateTime.Year;
            grdDanhsachhoadon_Baocaohoadon.DataSource = hd.BaocaobienlaitatcaNL_KhoangNgay_BL(fromday, frommonth, fromyear, today, tomonth, toyear);
        }
        // ------- Theo nhân viên thu tiền ----------
        void BaocaoTheoNgaytatcatt()
        {
            int iday = dateNgay_Baocaohoadon.DateTime.Day;
            int imonth = dateNgay_Baocaohoadon.DateTime.Month;
            int iyear = dateNgay_Baocaohoadon.DateTime.Year;
            grdDanhsachhoadon_Baocaohoadon.DataSource = hd.BaocaobienlaitatcaTT_Ngay_BL(iday, imonth, iyear);

        }
        // Hàm load Báo cáo NVTT theo THÁNG lên gridcontrol(Tất cả)
        void BaocaotheoThangtatcatt()
        {
           
                int month;
                month = Int32.Parse(cmbThang.Text);
                int iYear;
                iYear = Int32.Parse(cmbNam.Text);
                grdDanhsachhoadon_Baocaohoadon.DataSource = hd.BaocaobienlaitatcaTT_Thang_BL(month, iYear);

        }
        // Hàm load Báo cáo NVTT theo KHOẢNG NGÀY lên gridcontrol(Tất cả)
        void BaocaoKhoangNgaytatcatt()
        {
            int fromday = dateTu_Baocaohoadon.DateTime.Day;
            int frommonth = dateTu_Baocaohoadon.DateTime.Month;
            int fromyear = dateTu_Baocaohoadon.DateTime.Year;
            int today = dateDen_Baocaohoadon.DateTime.Day;
            int tomonth = dateDen_Baocaohoadon.DateTime.Month;
            int toyear = dateDen_Baocaohoadon.DateTime.Year;
            grdDanhsachhoadon_Baocaohoadon.DataSource = hd.BaocaobienlaitatcaTT_KhoangNgay_BL(fromday, frommonth, fromyear, today, tomonth, toyear);
        }

        // Xử lý button XEM TRƯỚC
        private void btnXemtruoc_Baocaohoadon_Click(object sender, EventArgs e)
        {
            
            if (cmbBaocaothe_Baocaohoadon.SelectedIndex == 0)
            {
                if (blcheckall == false)
                {
                    if (idanhdau == 1)
                        BaocaoTheoNgaynvnl();
                    if (idanhdau == 2)
                    {
                        if (cmbNam.SelectedItem == null)
                        {
                            MessageBox.Show("Vui lòng chọn năm!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                        else
                        {
                            BaocaotheoThangnvnl();
                        }
                    }
                    if (idanhdau == 3)
                        BaocaoKhoangNgaynvnl();
                }
                else
                {
                    if (idanhdau == 1)
                        BaocaoTheoNgaytatcanl();
                    if (idanhdau == 2)
                    {
                        if (cmbNam.SelectedItem == null)
                        {
                            MessageBox.Show("Vui lòng chọn năm!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                        else
                        {
                            BaocaotheoThangtatcanl();
                        }
                    }         
                    if (idanhdau == 3)
                        BaocaoKhoangNgaytatcanl();
                }
            }
            else
            {
                if (blcheckall == false)
                {
                    if (idanhdau == 1)
                        BaocaoTheoNgaynvtt();
                    if (idanhdau == 2)
                    {
                        if (cmbNam.SelectedItem == null)
                        {
                            MessageBox.Show("Vui lòng chọn năm!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                        else
                        {
                            BaocaotheoThangnvtt();
                        }
                    }           
                    if (idanhdau == 3)
                        BaocaoKhoangNgaynvtt();
                }
                else
                {
                    if (idanhdau == 1)
                        BaocaoTheoNgaytatcatt();
                    if (idanhdau == 2)
                    {
                        if (cmbNam.SelectedItem == null)
                        {
                            MessageBox.Show("Vui lòng chọn năm!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                        else
                        {
                            BaocaotheoThangtatcatt();
                        }
                    }      
                    if (idanhdau == 3)
                        BaocaoKhoangNgaytatcatt();
                }
            }
            grdcltongtien.DisplayFormat.FormatType = FormatType.Numeric;
            grdcltongtien.DisplayFormat.FormatString = "{0:0,0} VND";
            // Hàm bắt lỗi thông báo messagebox
            int count = gridView1.RowCount;
            if (count == 0)
            {
                MessageBox.Show("Không có dữ liệu !", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                btnInbaocao_Baocaohoadon.Enabled = false;
            }
            else
            {
                btnInbaocao_Baocaohoadon.Enabled = true;
            }

        }
        // Xử lý nút Print
        private void btnInbaocao_Baocaohoadon_Click(object sender, EventArgs e)
        {
<<<<<<< .mine
            if (cmbBaocaothe_Baocaohoadon.SelectedIndex == 0)
            {
                DataTable dt = new DataTable();
                dt = (DataTable)grdDanhsachhoadon_Baocaohoadon.DataSource;
                rptDSBLNhanVien rpt = new rptDSBLNhanVien();
                rpt.DataSource = dt;
                rpt.DataMember = "dt";
                rpt.ShowPreviewDialog();
            }
            if (cmbBaocaothe_Baocaohoadon.SelectedIndex == 1)
            {
                DataTable dt2 = new DataTable();
                dt2 = (DataTable)grdDanhsachhoadon_Baocaohoadon.DataSource;
                rptDSBLNVThuTien rpt2 = new rptDSBLNVThuTien();
                rpt2.DataSource = dt2;
                rpt2.DataMember = "dt2";
                rpt2.ShowPreviewDialog();
            }
=======
            if (cmbBaocaothe_Baocaohoadon.SelectedIndex == 0)
            {
                DataTable dt = new DataTable();
                dt = (DataTable)grdDanhsachhoadon_Baocaohoadon.DataSource;
                rptDSBLNhanVien rpt = new rptDSBLNhanVien();
                rpt.DataSource = dt;
                rpt.DataMember = "dt";
                rpt.ShowPreviewDialog();
            }
            if (cmbBaocaothe_Baocaohoadon.SelectedIndex == 1)
            {
                DataTable dt2 = new DataTable();
                dt2 = (DataTable)grdDanhsachhoadon_Baocaohoadon.DataSource;
                rptDSBLNVThuTien rpt2 = new rptDSBLNVThuTien();
                rpt2.DataSource = dt2;
                rpt2.DataMember = "dt2";
                rpt2.ShowPreviewDialog();
            }
            
>>>>>>> .r209
        }
        // Bắt Xự kiện combobox
        private void cmbBaocaothe_Baocaohoadon_SelectionChangeCommitted(object sender, EventArgs e)
        {

            HMSHospitalEntities context = new HMSHospitalEntities();
            int manvnl = cmbBaocaothe_Baocaohoadon.SelectedIndex;
            if (manvnl == 0)
            {
                gridColumn6.Caption = "Nhân viên tạo";
                grcNhanvien_Baocaohoadon.Enabled = true;
                grcDanhsachhoadon_Baocaohoadon.Enabled = true;
                grbThoigianbaocao_Baocaohoadon.Enabled = true;
                btnInbaocao_Baocaohoadon.Enabled = false;
                // Hàm refresh lại gridview
                for (int i = 0; i < gridView1.RowCount; )
                {
                    gridView1.DeleteRow(i);
                }
                // radio false và enable date
                dateNgay_Baocaohoadon.Enabled = false;
                rdNgay_Baocaohoadon.Checked = false;
                cmbThang.Enabled = false;
                cmbNam.Enabled = false;
                rdThang_Baocaohoadon.Checked = false;
                dateTu_Baocaohoadon.Enabled = false;
                dateDen_Baocaohoadon.Enabled = false;
                // làm trắng date
                dateNgay_Baocaohoadon.Text = "";
                cmbThang.Text = "";
                dateTu_Baocaohoadon.Text = "";
                dateDen_Baocaohoadon.Text = "";
                //Lấy tât cả nhân viên nhập liệu có trong bảng HoaDon
                cmbNhanvien_Baocaohoadon.DataSource = BL.HoaDonBL.LaydanhsachNVNL_BL();
                cmbNhanvien_Baocaohoadon.DisplayMember = "HoVaTen";
                cmbNhanvien_Baocaohoadon.ValueMember = "MaNhanVien";
            }
            if (manvnl == 1)
            {

                gridColumn6.Caption = "Nhân viên thu tiền";
                grcNhanvien_Baocaohoadon.Enabled = true;
                grcDanhsachhoadon_Baocaohoadon.Enabled = true;
                grbThoigianbaocao_Baocaohoadon.Enabled = true;
                btnInbaocao_Baocaohoadon.Enabled = false;
                // Hàm refresh lại gridview
                for (int i = 0; i < gridView1.RowCount; )
                {
                    gridView1.DeleteRow(i);
                }
                //Loaddata();
                // radio false và enable date
                dateNgay_Baocaohoadon.Enabled = false;
                rdNgay_Baocaohoadon.Checked = false;
                cmbThang.Enabled = false;
                cmbNam.Enabled = false;
                rdThang_Baocaohoadon.Checked = false;
                dateTu_Baocaohoadon.Enabled = false;
                dateDen_Baocaohoadon.Enabled = false;
                // làm trắng date
                dateNgay_Baocaohoadon.Text = "";
                cmbThang.Text = "";
                dateTu_Baocaohoadon.Text = "";
                dateDen_Baocaohoadon.Text = "";

                //Lấy tât cả nhân viên thu tiền có trong bảng HoaDon
                cmbNhanvien_Baocaohoadon.DataSource = BL.HoaDonBL.LaydanhsachNVTT_BL();
                cmbNhanvien_Baocaohoadon.DisplayMember = "HoVaTen";
                cmbNhanvien_Baocaohoadon.ValueMember = "MaNhanVien";
            }
           
        }
        // Hàm load colum STT lên gridview
        private void gridView1_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
        {
            if (e.Column == gridColumn7)
            {
                e.DisplayText = Convert.ToString(e.RowHandle + 1);
            }
        }

        private void cmbNhanvien_Baocaohoadon_SelectionChangeCommitted(object sender, EventArgs e)
        {
            blcheckall = false;
            sMaNV = cmbNhanvien_Baocaohoadon.SelectedValue.ToString();
            if (sMaNV == "all")
                blcheckall = true;
        }
    }
}
